
dojo.provide("dojo.charting.PlotArea");dojo.require("dojo.lang.common");dojo.require("dojo.gfx.color");dojo.require("dojo.gfx.color.hsl");dojo.require("dojo.charting.Plot");dojo.charting.PlotArea=function(){var id="dojo-charting-plotarea-"+dojo.charting.PlotArea.count++;this.getId=function(){return id;};this.setId=function(key){id=key;};this.areaType="standard";this.plots=[];this.size={width:600,height:400};this.padding={top:10,right:10,bottom:20,left:20};this.nodes={main:null,area:null,background:null,axes:null,plots:null};this._color={h:140,s:120,l:120,step:27};};dojo.charting.PlotArea.count=0;dojo.extend(dojo.charting.PlotArea,{nextColor:function(){var rgb=dojo.gfx.color.hsl2rgb(this._color.h,this._color.s,this._color.l);this._color.h=(this._color.h+this._color.step)%360;while(this._color.h<140){this._color.h+=this._color.step;}
return dojo.gfx.color.rgb2hex(rgb[0],rgb[1],rgb[2]);},getArea:function(){return{left:this.padding.left,right:this.size.width-this.padding.right,top:this.padding.top,bottom:this.size.height-this.padding.bottom,toString:function(){var a=[this.top,this.right,this.bottom,this.left];return"["+a.join()+"]";}};},getAxes:function(){var axes={};for(var i=0;i<this.plots.length;i++){var plot=this.plots[i];axes[plot.axisX.getId()]={axis:plot.axisX,drawAgainst:plot.axisY,plot:plot,plane:"x"};axes[plot.axisY.getId()]={axis:plot.axisY,drawAgainst:plot.axisX,plot:plot,plane:"y"};}
return axes;},getLegendInfo:function(){var a=[];for(var i=0;i<this.plots.length;i++){for(var j=0;j<this.plots[i].series.length;j++){var data=this.plots[i].series[j].data;a.push({label:data.label,color:data.color});}}
return a;},setAxesRanges:function(){var ranges={};var axes={};for(var i=0;i<this.plots.length;i++){var plot=this.plots[i];var ranges=plot.getRanges();var x=ranges.x;var y=ranges.y;var ax,ay;if(!axes[plot.axisX.getId()]){axes[plot.axisX.getId()]=plot.axisX;ranges[plot.axisX.getId()]={upper:x.upper,lower:x.lower};}
ax=ranges[plot.axisX.getId()];ax.upper=Math.max(ax.upper,x.upper);ax.lower=Math.min(ax.lower,x.lower);if(!axes[plot.axisY.getId()]){axes[plot.axisY.getId()]=plot.axisY;ranges[plot.axisY.getId()]={upper:y.upper,lower:y.lower};}
ay=ranges[plot.axisY.getId()];ay.upper=Math.max(ay.upper,y.upper);ay.lower=Math.min(ay.lower,y.lower);}
for(var p in axes){axes[p].range=ranges[p];}},render:function(kwArgs,applyToData){if(!this.nodes.main||!this.nodes.area||!this.nodes.background||!this.nodes.plots||!this.nodes.axes){this.initialize();}
this.resize();for(var i=0;i<this.plots.length;i++){var plot=this.plots[i];if(plot.dataNode){this.nodes.plots.removeChild(plot.dataNode);}
var target=this.initializePlot(plot);switch(plot.renderType){case dojo.charting.RenderPlotSeries.Grouped:if(plot.series[0]){target.appendChild(plot.series[0].plotter(this,plot,kwArgs,applyToData));}
break;case dojo.charting.RenderPlotSeries.Singly:default:for(var j=0;j<plot.series.length;j++){var series=plot.series[j];var data=series.data.evaluate(kwArgs);target.appendChild(series.plotter(data,this,plot,applyToData));}}
this.nodes.plots.appendChild(target);}},destroy:function(){for(var i=0;i<this.plots.length;i++){this.plots[i].destroy();}
for(var p in this.nodes){var node=this.nodes[p];if(!node){continue;}
if(!node.childNodes){continue;}
while(node.childNodes.length>0){node.removeChild(node.childNodes[0]);}
this.nodes[p]=null;}}});dojo.requireIf(dojo.render.svg.capable,"dojo.charting.svg.PlotArea");dojo.requireIf(dojo.render.vml.capable,"dojo.charting.vml.PlotArea");